package com.example.springboot.MyBatis.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import java.util.ArrayList;

@Configuration
public class SGconfig {

    /**
     * 配置swagger的Docket bean
     * @return
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30) // 指定swagger3.0版本
                .enable(false) //开关，正式环境中需要关闭
                .select()
//               basePackage 可以根据包路径来生成特定类的API
//               any 方法是默认所有都有效
//               none 方法都无效
//               withClassAnnotation 根据类注解
//               withMethodAnnotation 是根据方法注解
                .apis(RequestHandlerSelectors.any())

//              类似的还有一个根据请求路径的 paths 方法；
//              一般用 ant 匹配路径
//              any 是匹配任意路径， none 是都不匹配， regex 是正则匹配
//              .select()
//              .paths(PathSelectors.ant("/java1234/**")) // 匹配 /java1234/**请求路径
//              .build()
                .build()
//              通过 groupName 方法可以设置组名；
                .groupName("only")
                .apiInfo(createApiInfo());
    }
    /**
     * 配置swagger的ApiInfo bean
     * @return
     */
    @Bean
    public ApiInfo createApiInfo(){
        return new ApiInfo("zixiu SG"
                ,"zixiu Api Documentation"
                ,"3.0"
                ,"http://www.zixiu.space"
                ,new Contact("Zixiu", "http://www.zixiu.space",
                "2396696213@qq.com")
                ,"Nginx"
                ,"http://www.apache.org/licenses/LICENSE-2.0"
                ,new ArrayList());
    }

}
